# -*- coding: utf-8 *-*
'''
@author: Geraldo Oliveira
@date: 13 de abril de 2013
@obs: 
Algoritmo de ordenacao BubbleSort
'''

class BubbleSort(object):
	
	def __init__(self, lista):
		'''
		Recebe a lista a ordenar

			lista  -> Lista a ordenar
		'''
		self.lista = lista

	def run(self):
		'''	
		Algoritmo BubbleSort 
		'''
		for i in xrange(0, len(self.lista)):
			for j in xrange(len(self.lista)-1, i, -1):
				if self.lista[j] < self.lista[j-1]:
					self.lista[j], self.lista[j-1] = self.lista[j-1], self.lista[j]

	def nome(self):
		'''
		Devolve o nome do metodo de ordenacao
		'''
		return "bubblesort"
	
	def o(self, n):
		'''
		Calculo do valor teorico

		Recebe:
			n 	-> numero de elementos
		'''
		return n**2

	def __str__(self):
		'''
		Imprime o objecto 
		'''
		return str(self.lista)